/* 
 * File:   storagehandler.h
 * Author: kenji
 *
 * Created on January 27, 2014, 9:40 AM
 */

#ifndef STORAGEHANDLER_H
#define	STORAGEHANDLER_H


#include "osmium.hpp"
#include "osmium/handler.hpp"
#include "osmium/input.hpp"
#include <osmium/osm/object.hpp>
#include "graph.h"

class StorageHandler : public Osmium::Handler::Base
{
public:
    StorageHandler();

    ~StorageHandler();

    void node(const shared_ptr<Osmium::OSM::Node const>&)const;

    void way(const shared_ptr<Osmium::OSM::Way const>&)const;

    void relation(const shared_ptr<Osmium::OSM::Relation const>&)const;

    void final();

    Graph* getGraph();

private:
    Graph* graph_;

};

#endif	/* STORAGEHANDLER_H */

